import encryption from './encryption';

// 保存缓存
const setItem = (name, data) => {
  if (!name) {
    return;
  }
  // 对于名字 保存和取值使用对称加密， 不关心是什么名字
  const nameCode = encryption.encode(name);
  // 对于数据 保存时加密， 取出时解密
  const json = JSON.stringify({ data });
  const code = encryption.encode(json);
  return localStorage.setItem(nameCode, code);
};

// 取出缓存
const getItem = name => {
  if (!name) {
    return {};
  }
  // 对于名字 保存和取值使用对称加密， 不关心是什么名字
  const nameCode = encryption.encode(name);
  // 对于数据 保存时加密， 取出时解密
  const json = localStorage.getItem(nameCode);
  if (!json) {
    return '';
  }
  const str = encryption.decode(json);
  const { data } = JSON.parse(str);
  return data;
};

const removeItem = name => {
  if (!name) {
    return {};
  }
  // 对于名字 保存和取值使用对称加密， 不关心是什么名字
  const nameCode = encryption.encode(name);

  localStorage.removeItem(nameCode);
}



export default { setItem, getItem, removeItem };
